package org.example;

import com.itextpdf.text.Document;
import com.itextpdf.text.Image;
import com.itextpdf.text.Rectangle;
import com.itextpdf.text.pdf.PdfWriter;

import java.io.File;
import java.io.FileOutputStream;

public class MergeToPDF {

    /**
     * 合并图片
     * @param args
     */
    public static void main(String[] args) {
        String imageFolderPath = "C:\\Books\\2上\\";
        String pdfPath = "C:\\Books\\合并后\\2上.pdf";
        toPdf(imageFolderPath, pdfPath);
    }

    /**
     * @param imageFolderPath 图片文件夹地址
     * @param pdfPath         PDF文件保存地址
     */
    public static void toPdf(String imageFolderPath, String pdfPath) {
        try {
            // 图片地址
            String imagePath;
            // 输入流
            FileOutputStream fos = new FileOutputStream(pdfPath);
            // 创建文档
            Document document = new Document();
            document.setMargins(5, 5, 5, 5);
            // 写入PDF文档
            PdfWriter.getInstance(document, fos);
            document.open();
            // 获取图片文件夹对象
            File file = new File(imageFolderPath);
            File[] files = file.listFiles();
            // 循环获取图片文件夹内的图片
            for (int j = 0; j < files.length; j++) {
                imagePath = imageFolderPath + (j + 1) + ".png";
                // 实例化图片
                Image image = Image.getInstance(imagePath);
                image.setAlignment(Image.ALIGN_CENTER);
                image.scalePercent(100);
                // 根据图片大小设置文档大小
                document.setPageSize(new Rectangle(image.getWidth(), image.getHeight()));
                document.newPage();
                document.add(image);
            }
            // 关闭文档
            document.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
